//////////////////////////////////////////////////////
// Player.cpp
//////////////////////////////////////////////////////

#include "player.h"

//////////////////////////////////////////////////////
// CPlayer()
//////////////////////////////////////////////////////
CPlayer::CPlayer(void)
{
    m_iSector = 0;
    m_iHitPoints = 0;
    m_iMaxHitPoints = 0;
    m_iArmor = 0;
    m_iWeapon = 0;
    m_iGold = 0;
    m_iKeys = 0;
    m_iPotions = 0;
    m_iExperience = 0;
	m_HomeFrame = 30;
	m_CurrentFrame = 30;
	m_Facing = 0;


	Constitution = 12 + 3;
	Strength = 12 + 4;
	Dexterity = 12;
	Speed = 2;
	Intelligence = 12;
	Wisdom = 12;
	Charisma = 12; 
	TotalWeight = 0;
	HealthPointsM = 1;
	HealthPointsC = 1;
	Damage = 0;
	ManaPoolM = 1;
	ManaPoolC = 1;
	BodyWeight = 180;
	ItemWeight = 0;
	Level = 1;
	Experience = 0;
	HealthD = 10;
	ManaD = 4;

    WeaponMax = 6;
	WeaponMin = 1;

	Chest = 5; 
	Shield = 3; 
	Helm = 2;
	Boots = 1;
	Gloves = 1; 
	Laggings = 3; 

	BaseAttack = 1;

}

CPlayer::CPlayer(int all)
{
    m_iSector = 0;
    m_iHitPoints = 0;
    m_iMaxHitPoints = 0;
    m_iArmor = 0;
    m_iWeapon = 0;
    m_iGold = 0;
    m_iKeys = 0;
    m_iPotions = 0;
    m_iExperience = 0;
	m_HomeFrame = 30;
	m_CurrentFrame = 30;
	m_Facing = 0;

	Constitution = all + 3;
	Strength = all + 4;
	Dexterity = all;
	Speed = 2;
	Intelligence = all;
	Wisdom = all;
	Charisma = all; 
	TotalWeight = 0;
	HealthPointsM = 1;
	HealthPointsC = 1;
	Damage = 0;
	ManaPoolM = 1;
	ManaPoolC = 1;
	BodyWeight = 180;
	ItemWeight = 0;
	Level = 1;
	Experience = 0;
	HealthD = 10;
	ManaD = 4;

    WeaponMax = 6;
	WeaponMin = 1;

	Chest = 5; 
	Shield = 3; 
	Helm = 2;
	Boots = 1;
	Gloves = 1; 
	Laggings = 3; 

	BaseAttack = 1;

}
//////////////////////////////////////////////////////
// ~CPlayer()
//////////////////////////////////////////////////////
CPlayer::~CPlayer(void)
{
}

//////////////////////////////////////////////////////
// SetSector()
//////////////////////////////////////////////////////
void CPlayer::SetSector(int num)
{
    m_iSector = num;
}

//////////////////////////////////////////////////////
// GetSector()
//////////////////////////////////////////////////////
int CPlayer::GetSector()
{
    return m_iSector;
}

//////////////////////////////////////////////////////
// SetTempSector()
//////////////////////////////////////////////////////
void CPlayer::SetTempSector(int num)
{
    m_tempSector = num;
}

//////////////////////////////////////////////////////
// GetTempSector()
//////////////////////////////////////////////////////
int CPlayer::GetTempSector()
{
    return m_tempSector;
}

//////////////////////////////////////////////////////
// SetHitPoints()
//////////////////////////////////////////////////////
void CPlayer::SetHitPoints(int num)
{
    m_iHitPoints = num;
}

//////////////////////////////////////////////////////
// GetHitPoints()
//////////////////////////////////////////////////////
int CPlayer::GetHitPoints()
{
    return m_iHitPoints;
}

//////////////////////////////////////////////////////
// SetMaxHitPoints()
//////////////////////////////////////////////////////
void CPlayer::SetMaxHitPoints(int num)
{
    m_iMaxHitPoints = num;
}

//////////////////////////////////////////////////////
// GetMaxHitPoints()
//////////////////////////////////////////////////////
int CPlayer::GetMaxHitPoints()
{
    return m_iMaxHitPoints;
}

//////////////////////////////////////////////////////
// SetArmor()
//////////////////////////////////////////////////////
void CPlayer::SetArmor(int num)
{
    m_iArmor = num;
}

//////////////////////////////////////////////////////
// GetArmor()
//////////////////////////////////////////////////////
int CPlayer::GetArmor()
{
    return m_iArmor;
}

//////////////////////////////////////////////////////
// SetWeapon()
//////////////////////////////////////////////////////
void CPlayer::SetWeapon(int num)
{
    m_iWeapon = num;
}

//////////////////////////////////////////////////////
// GetWeapon()
//////////////////////////////////////////////////////
int CPlayer::GetWeapon()
{
    return m_iWeapon;
}

//////////////////////////////////////////////////////
// SetGold()
//////////////////////////////////////////////////////
void CPlayer::SetGold(int num)
{
    m_iGold = num;
}

//////////////////////////////////////////////////////
// GetGold()
//////////////////////////////////////////////////////
int CPlayer::GetGold()
{
    return m_iGold;
}

//////////////////////////////////////////////////////
// SetKeys()
//////////////////////////////////////////////////////
void CPlayer::SetKeys(int num)
{
    m_iKeys = num;
}

//////////////////////////////////////////////////////
// GetKeys()
//////////////////////////////////////////////////////
int CPlayer::GetKeys()
{
    return m_iKeys;
}

//////////////////////////////////////////////////////
// SetPotions()
//////////////////////////////////////////////////////
void CPlayer::SetPotions(int num)
{
    m_iPotions = num;
}

//////////////////////////////////////////////////////
// GetPotions()
//////////////////////////////////////////////////////
int CPlayer::GetPotions()
{
    return m_iPotions;
}

//////////////////////////////////////////////////////
// SetExperience()
//////////////////////////////////////////////////////
void CPlayer::SetExperience(int num)
{
    m_iExperience = num;
}

//////////////////////////////////////////////////////
// GetExperience()
//////////////////////////////////////////////////////
int CPlayer::GetExperience()
{
    return m_iExperience;
}

//////////////////////////////////////////////////////
// GetCurrentFrame
//////////////////////////////////////////////////////
int CPlayer::GetCurrentFrame()
{
    return m_CurrentFrame;
}

//////////////////////////////////////////////////////
// SetCurrentFrame
//////////////////////////////////////////////////////
void CPlayer::SetCurrentFrame(int num)
{
    m_CurrentFrame = num;
}

//////////////////////////////////////////////////////
// GetHomeFrame
//////////////////////////////////////////////////////
int CPlayer::GetHomeFrame()
{
    return m_HomeFrame;
}

//////////////////////////////////////////////////////
// SetHomeFrame
//////////////////////////////////////////////////////
void CPlayer::SetHomeFrame(int num)
{
    m_HomeFrame = num;
}

//////////////////////////////////////////////////////
// GetFacing
//////////////////////////////////////////////////////
int CPlayer::GetFacing()
{
    return m_Facing;
}

//////////////////////////////////////////////////////
// SetFacing
//////////////////////////////////////////////////////
void CPlayer::SetFacing(int num)
{
    m_Facing = num;
}

//zach's stuff
int CPlayer::getAttack()
{
	srand(time(NULL));
	Attack = AttackB + BaseAttack + (rand() % 20);
	return Attack;
}

int CPlayer::getAttackM()
{
	srand(time(NULL));
	AttackM = (((Strength - 10)/2) +(rand() % 20)) + AttackB;
	return AttackM;
}

int CPlayer::getAttackR()
{
	srand(time(NULL));
	AttackR = (((Dexterity - 10)/2) +(rand() % 20)) + AttackB;
	return AttackR;
}


void CPlayer::PlayerSetup()
{
	HealthPointsM = HealthD + ((Constitution -10)/2);
	ManaPoolM = ((Level + 1) * (Level + 1)) + Level;
	TotalWeight = 0;
	AttackB = BaseAttack + ((Strength - 10)/2);
}



void CPlayer::setConstitution()
{
	Constitution = Constitution + 1;
}


void CPlayer::setStrength()
{
	Strength = Strength + 1;
}

void CPlayer::setDexteriry()
{
	Dexterity = Dexterity + 1;
}

void CPlayer::setCharisma()
{
	Charisma = Charisma + 1;
}

void CPlayer::setSpeed()
{
	//Speed = (Agility * ( .5 * Strength) / WeightTotal);
}

void CPlayer::setIntelligence()
{

		Intelligence = 1 + Intelligence;

}
void CPlayer::setWisdom()
{
		Wisdom = 1 + Wisdom;
}

void CPlayer::setWeight()
{
	TotalWeight = BodyWeight + ItemWeight;
}

void CPlayer::setHealthPointsM()
{
	srand(time(NULL));
	HealthPointsM =  HealthPointsM + (((Constitution - 10)/ 2) +(rand() % HealthD));
}
void CPlayer::setHealthPointsC()
{
	HealthPointsC = HealthPointsM - Damage;
}

void CPlayer::setManaPoolM()
{
	srand(time(NULL));
	ManaPoolM = ManaPoolM + (rand() % ManaD); 
}

void CPlayer::setManaPoolC()
{
	ManaPoolC = ManaPoolM - ManaU;
}

void CPlayer::setManaU(int Mana)
{
	ManaU = ManaU + Mana;
	setManaPoolC();
}

void CPlayer::setDamage(int dam)
{
	Damage = dam + Damage;
	setHealthPointsC();
}
void CPlayer::setLevel()
{
	if ( Experience < 2000)
	{
		Level = 1;
	}
	else if ( Experience < 5000)
	{
		Level = 2;
	}
	else if ( Experience < 10000)
	{
		Level = 3;
	}
}
void CPlayer::setExperience(int exp)
{
	Experience = exp + Experience;
	setLevel();
}

void CPlayer::setAttackB(int Base)
{
	AttackB = Level;
}

void CPlayer::setArmorClass()
{
	ArmorClass = Chest + Shield + Helm + Boots + Gloves + Laggings;
}